• Плагин синхронизации задач для Redmine

      image

      Продолжаем допиливать Redmine под свои нужды.
      В разное время для нескольких крупных (и не только) клиентов по их желанию были установлены отдельные инстансы redmine.
      В основном, они используются для личных нужд клиента: управление репозиториями кода, внутренние задачи.
      Но так же в этих трекерах ставились задачи и для системных администратором, то есть для нас.
      Проекты росли в своем объеме и количестве, и наступил критический момент, когда сложно стало следить сразу за несколькими трекерами. В то же время, клиенту удобно пользоваться своим трекером, а идти в наш чтобы поставить задачу по администрированию лениво, да и попросту трата лишнего времени.

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

      Читать дальше →
    • Замена Dropbox на BitTorrent Sync + Raspberry Pi



        Для Raspberry Pi нашли ещё одно полезное применение. Мини-компьютер отлично справляется с бэкапом и синхронизацией файлов между различными устройствами. К нему можно подключить внешний диск или большую флэшку, и RPi готов работать круглосуточно, синхронизируя файлы с компьютеров, ноутбуков и Android-устройств (скоро выйдет и клиент для iOS). Незачем платить за облачный сервис, если можно сделать такое же удобное «облако» у себя дома, и бесплатно.

        Американский программист Джек Минарди опубликовал пошаговую инструкцию, как запустить BitTorrent Sync на Raspberry Pi.
        Читать дальше →
      • Масштабируемый отказоустойчивый файловый сервис на базе CTDB, GlusterFS

        Статья является пошаговым руководством по построению масштабируемого отказоустойчивого файлового хранилища, доступ к которому будет осуществлен по протоколам Samba, NFS. В качестве файловой системы, которая будет непосредственно отвечать за сохранение и масштабирование файловой шары будем использовать GlusterFS, о котором было уже достаточно написано хабрасообществом. Так как GlusterFS — часть Red Hat Storage, туториал написан для RH — like систем.

        Читать дальше →
        • +13
        • 17,4k
        • 3
      • Apple iPhone 5s: вскрытие, сравнение с предыдущими поколениями и оценка ремонтопригодности

          В пятницу вечером в Россию привезли первые экземпляры iPhone 5s и iPhone 5c. Один из экземпляров 5s попал мне в руки. Но с обзором я решил не торопиться, потому что он требует довольно обстоятельного знакомства, занимающего, как минимум, недели две. Но iPhone 5s буквально жег руки, требуя что-то о себе написать. И мы с мастером Александром Левченко не выдержали, разобрав беднягу до основания и сравнив его компоненты с аналогами из предыдущих поколений. Заодно мы оценили и ремонтопригодность новинки.

          image
          Читать дальше →
        • Постутюжная технология производства печатных плат

          image
          Последний раз я делал печатную плату, когда ещё не было интернета, лазерных принтеров и другой современной ерунды, зато была клейкая лента, скальпель и куча свободного времени. И вот теперь для меня пришло время вернуться к решению этой задачи.
          Теперь, вроде как, всё есть, однако проблема осталась. Всем ведь понятно, чем неудобен заказ печатных плат на специализированном производстве, когда нужно сделать лишь одну штуку, или прототип. Потому и используют ЛУТ, фоторезист, фрезерование, в общем, кто что может. Но ведь хочется без развития специальных навыков получить гарантированный и повторяемый результат. Вот и приступим…
          Читать дальше →
        • Panasonic KX-TGP500 DECT

            Компания Panasonic вышла на рынок с новым бюджетным SIP-DECT телефоном KX-TGP500, производитель ориентировался на малый и средний бизнес и цена этому доказательство от 3100 до 3700 р. Телефон получил супер звук благодаря технологий High Definition Sound Performance и яркий черно белый дисплей с белой подсветкой. В режиме разговора телефон будет работать до 12 часов а в режиме ожидания до 120 часов. Телефон работает с Asterisk, Trixbox, Switchvox, 3CX и другими ИП АТС.



            Читать дальше →
          • Фиксим png в IE6 с помощью expression, одним классом и без использования однопиксельного gif'а

              Это давно известная проблема. У этой проблемы существуют 1000 решений, правда все они используют в конечном счёте один и тот же, проверенный AlphaImageLoader. Я, скорее всего, не открою Америку, а лишь хочу рассказать вам об expression'е, которым с недавних пор пользуюсь и которого достаточно в 99% случаев, а также объясню как, почему и зачем я его написал.
              Читать дальше →
            • Пишем своё расширение для браузера Mozilla Firefox

              • Tutorial
              Итак, после обновления Firefox до 19 версии, полностью отвалилось горячо любимое расширение Яндекс.Бар. Не забуду напомнить, что Яндекс.Бар был заменен Яндекс.Элементами, которые понравились чуть больше, чем никому, поэтому и получили свои заслуженные 2 бала из 5ти.

              Почему не понравились? Заменили адресную строку, стало неудобно просматривать почту, заменили закладки и убрали корректор адресной строки (под предлогом установки Punto Switcher, который может и хорош для обычного работника, но никак не для программиста. Поэтому и был удален почти сразу же, как установлен. Да и если можно было бы настроить, то всё равно желание пропало).

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

              Читать дальше →
            • Nginx boilerplate: Быстрая и изящная настройка nginx

                Хочу поделиться своими наработками по настройке nginx, которые, возможно, помогут кому-то при старте нового проекта или избавят от необходимости копипастить очередной vhost.

                Я отметил две проблемы подавляющего числа конфигов nginx'а, попадавших мне на глаза:
                • «Всё в одном файле»
                • Дублирование настроек

                С помощью моего подхода, надеюсь, эти и многие другие проблемы будут устранены.
                Читать дальше →
              • Лёгкий сайт или как посадить браузер на диету

                • Перевод

                А что если объединить профессионалов, работавших над крупными web проектами, чтобы создать исчерпывающее руководство по оптимизации front-end разработки?
                И получить в результате не скучную инструкцию, а что то поинтереснее? А если позвать Briza Bueno (Americanas.com), Davidson Fellipe (Globo.com), Giovanni Keppelen (ex-Peixe Urbano), Jaydson Gomes (Terra), Marcel Duran (Twitter), Mike Taylor (Opera), Renato Mangini (Google), и Sérgio Lopes (Caelum) чтобы собрать лучшие практики?

                Именно это мы и сделали! Мы научим вас создавать быстрые сайты.

                Zeno Rocha, руководитель проекта.


                Читать дальше →
              • Хостинг FastVPS.ru или почему OpenVZ Это зло

                  Пару лет назад мы с товарищем купили виртуальный сервер на двоих у компании FastVPS.ru. Сервер был отличный, и нас очень радовал низкой стоимостью и большим функционалом. Вдумайтесь, на сервере был поднят bind для всех наших доменов, 8 сайтов, пара баз данных для них, ftp сервер, postfix, trac и xml rpc сервер на питоне. И все это отлично работало пока… пока ребята из FastVPS не перешли на новую мега-технологию виртуализации OpenVZ.
                  Читать дальше →
                • Об одной малоизвестной уязвимости в веб сайтах

                    Первое правило безопасности при разработке Веб приложений гласит: —
                    Не доверять данным пришедшим от клиента.
                    Почти все это правило хорошо знают и соблюдают. Мы пропускаем через валидаторы данные форм, кукисы, даже URI.
                    Но недавно я с удивлением обнаружил, что есть одна переменная, приходящая от клиента, которую почти никто не фильтрует.
                    Речь пойдет о компрометации веб приложения через подмену значения HTTP_HOST и SERVER_NAME.
                    Читать дальше →
                  • «Пакет смерти» для сетевых карт Intel

                      Сетевой инженер Кристиан Кильхофнер (Kristian Kielhofner), купив новые серверы для обработки VoIP-трафика, столкнулся с неприятной проблемой. Серверы периодически падали без видимой причины. Но самое странное, что на серверах иногда отключался Ethernet-контроллер. Отключался в прямом смысле: система некоторое время работала нормально, но после обработки определённого количества трафика интерфейс выдавал аппаратную ошибку и обрывал связь, а восстановление работы было возможно только после холодной перезагрузки.

                      Кристиан провёл небольшое исследование и нашёл ряд сообщений о том, что у других пользователей тоже бывают проблемы с контроллерами Intel 82574L, говорили, что у них баги в EEPROM, ASPM и т.д. Кристиан с коллегами потратил несколько месяцев на поиск причин, почему в их случае контроллеры выдавали ошибку. В конце концов, им удалось докопаться до сути.
                      Читать дальше →
                    • Высокая производительность Google Chrome

                      • Перевод

                      История и краеугольные принципы Google Chrome.


                      imageGoogle Chrome был представлен во второй половине 2008 года, как бета версия для Windows платформы. Код Chrome, авторство которого принадлежит Google, был сделан доступным под либеральной BSD лицензией — как и Chromium проект. Для большинства заинтересованных, такой поворот событий стал сюрпризом — война браузеров возвращается? Сможет ли Google сделать свой продукт действительно лучше других?

                      «Это было столь хорошо, что заставило меня изменить свое мнение..» — Эрих Шмидт, первоначально не желающий принимать идею Google Chrome.
                      Читать дальше →
                    • Подводные камни при использовании кэширования в nginx

                        В web-сервер и reverse-proxy nginx встроены очень мощные возможности по кэшированию HTTP-ответов. Однако в ряде случаев документации и примеров не хватает, в результате не все получается так легко и просто, как хотелось бы. Например, мои конфиги nginx-а местами написаны кровью. Этой статьей я попробую немного улучшить ситуацию.

                        В этой статье: а) подводные камни при полностраничном кэшировании; б) кэширование с ротацией; в) создание динамического «окна» в закэшированной странице.

                        Я буду предполагать, что вы используете связку nginx+fastcgi_php. Если вы применяете nginx+apache+mod_php, просто замените имена директив с fastcgi_cache* на proxy_cache*

                        Если выбирать, кэшировать ли страницу на стороне PHP или на стороне nginx, я выбираю nginx. Во-первых, это позволяет отдавать 5-10 тыс. запросов в секунду без каких-либо сложностей и без умных разговоров о «высокой нагрузке». Во-вторых, nginx самостоятельно следит за размером кэша и чистит его как при устаревании, так и при вытеснении нечасто используемых данных.

                        Кэширование всей страницы целиком


                        Если на вашем сайте главная страница хоть и генерируется динамически, но меняется достаточно редко, можно сильно снизить нагрузку на сервер, закэшировав ее в nginx. При высокой посещаемости даже кэширование на короткий срок (5 минут и меньше) уже дает огромный прирост в производительности, ведь кэш работает очень быстро. Даже закэшировав страницу всего на 30 секунд, вы все равно добьетесь значительной разгрузки сервера, сохранив при этом динамичность обновления данных (во многих случаях обновления раз в 30 секунд вполне достаточно).
                        Читать дальше →
                      • Предельная производительность: C#

                        performanceЯ поделюсь 30 практиками для достижения максимальной производительности приложений, которые этого требуют. Затем, я расскажу, как применил их для коммерческого продукта и добился небывалых результатов!
                        Приложение было написано на C# для платформы Windows, работающее с Microsoft SQL Server. Никаких профайлеров – содержание основывается на понимании работы различных технологий, поэтому многие топики пригодятся для других платформ и языков программирования.
                        Читать дальше →
                      • Пилим Adblock



                          Стратегия


                          Итак, Адблок… Но здесь я буду говорить не столько о блокировке рекламы, сколько об оптимизации и правильном использовании этого интересного своей универсальностью дополнения. Не отношусь к тем, кого раздражает сама реклама — меня раздражает способ ее доставки.
                          Читать дальше →
                        • Загрузка GNU/Linux без стороннего загрузчика

                          • Tutorial
                          В данной статье я приведу пример, как можно отказаться от использования стороннего загрузчика, будь то Grub или Lilo, если ваш компьютер поддерживает современный стандарт UEFI, пришедший на замену BIOS. Интересной особенностью будет то, что все работы проводим на уже установленной и рабочей системе.
                          По уровню сложности данная статья ориентирована на опытных пользователей Linux, т.к. некоторых моментов я касаюсь поверхностно, полагаясь на очевидность, чтобы не уходить от основной освещаемой темы.

                          Читать дальше →
                        • Управляем вентилятором ноутбука через DSDT в Linux и не только

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

                            Нет, конечно, я слышал про всякие программы, которые могут вмешиваться в управление охлаждением и вроде кто-то ими успешно пользуется, но лично мне с ними вечно не везло, точнее не везло с железом, на котором я пытался их завести. Например, какое-то время назад я пробовал настроить fancontrol на довольно старом ноутбуке HP nc8430 с Убунтой. В итоге, известный скрипт sensors-detect не смог найти ни одного вентилятора в системе, а без этого fancontrol не работает. На разных форумах периодически появляются люди с похожими проблемами, но никто им толком помочь не может.

                            Тогда я в очередной раз забросил эту тему и вернулся к ней только на днях, когда читал обзоры, подыскивая себе новый ноутбук, и уже вроде бы выбрал почти всем хороший Sony S15, как опять в одном из обзоров читаю про него, что вентилятор в нем вообще не останавливается никогда, даже когда точно можно. Постоянно шумящий ноутбук я больше не хочу, а выбирать как всегда особо не из чего, учитывая, что надо 15", что TN матрицу я тоже больше не хочу, и бюджет ограничен. Ну сами знаете, как оно бывает. Может быть на нем все-таки заведется fancontrol и все будет хорошо, но а если нет? Никаких отчетов по его установке на этот ноутбук найти не удалось. Это побудило меня еще раз копнуть тему программного управления вентиляторами и пройти довольно непростой, но очень увлекательный квест.
                            Читать дальше →
                          • Уязвимость связки PHP+nginx с кривым конфигом

                              Summary


                              Announced: 2010-05-20
                              Credits: 80sec
                              Affects: сайты на ngnix+php с возможностью загрузки файлов в директории с fastcgi_pass




                              Background


                              Зачастую How-To по настройке связки nginx с php-fpm / php-cgi есть подобные строчки:

                              location ~ \.php$ {
                                  fastcgi_pass 127.0.0.1:9000;
                                  fastcgi_index index.php;
                                  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
                                  include fastcgi_params;
                              }
                              

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