Як заповнити 100 таймшитов за 2 хвилини

Пост про те, чому наші програмісти тепер заповнюють таймшит не 32, а тільки 2 хвилини і про те, як можна налагодити автоматичний облік робочого часу за рахунок імпорту даних з трекінгових систем TFS, Redmine і Jira на Microsoft Project Server.



Стаття буде цікава менеджерам проектів, керівникам компаній-розробників, а також програмістів, що цікавляться інтеграцією різних систем управління проектами.

Проблема — бардак в заповненні таймшитов
Для 99% компаній-розробників облік робочого часу програмістів потрібен як повітря, щоб рахувати витрати.
Читати далі →

Redmine на MySQL з RocksDB швидше, ніж з InnoDB, від 20% до 3 разів

Ми зібрали форк MySQL від Facebook з движком RocksDB замість InnoDB і потестували його з реальними додатками: Drupal, Wordpress, Redmine.
Це офігенна штука. При низькому навантаженні виграш маленький, десятки відсотків. Зате при високому навантаженні виграш в рази. Коли RocksDB додадуть в стабільний реліз в MariaDB, я впевнений, що протягом півроку половина народу перейде з InnoDB на RocksDB. Особливо, невеликі сайти на cloud/VPS та виділених серверах.
Що такого хорошого в MyRocks? Лінійна запис замість випадкової і зниження числа дискових операцій взагалі. Тобто транзакції бази даних породжують менше дискових операцій, менше займають чергу диска, і пишуться набагато швидше.
Я зібрав у статтю результати тестування реальних сценаріїв Redmine, додав аналіз результатів і висновки. Redmine на MySQL з RocksDB виявився швидше, ніж з InnoDB — від 20% при мінімальному навантаженні до 3 разів при максимальній. Пізніше підготую матеріали по Drupal та іншим PHP-додатків.
Ви зможете перевірити роботу MyRocks і самостійно — в кінці статті є посилання на інсталятори і віртуальні машини з LAMP/LEMP/Ruby стеками, зібрані з MyRocks замість MySQL.


Читати далі →

П'ятничний пост: opensource CRM минає



Зустрічаючись з огріхами і помилками зручності черговий CRM/системи управління проектами — виникає думка написати-таки свій велосипед, однак економічна ситуація в нашій країні, так і відсутність багатьох годин часу на контроль зупиняє мене від такого розумного кроку, тому доводиться вибирати з того, що є.

А раз вже все одно вибирати — чому б не написати про це?
Читати далі →

Excel «Всемогутній» і Redmine: як генерувати завдання прямо в Excel


У далеких від IT проектних організаціях Excel часто використовується в якості інструменту обробки бозна-яких даних.

Переді мною постало завдання в дуже стислі терміни налагодити в Excel моніторинг вельми специфічного проекту з одночасною видачею завдань в проектні відділи. Щодо моніторингу ТЗ було більш-менш визначено і весь функціонал був реалізований засобами VBA самого Excel.

З видачею завдань все було не так однозначно. Поскрипівши кріслом, я вирішив спробувати відправляти завдання в Redmine прямо з Excel, отримуючи назад гіперпосилання та номер завдання.

Стаття написана інженером-проектувальником для таких новачків у програмуванні, що автоматизують підручними засобами рутинну роботу. Буду радий будь-яким зауважень!

Читати далі →

Швидкий повнотекстовий пошук у Redmine

image redmine-logo
image elastic-logo
У нас використовується система управління проектами і завданнями Redmine. Ми продовжуємо допілівать її під свої потреби, щоб підвищити зручність роботи і розширити функціонал. Черговий завданням стало прискорення пошуку.

З тих пір як кількість завдань у Redmine зросла до кількох сотень тисяч, час на обробку пошукового запиту стало займати десятки секунд, що неприпустимо довго для нас. Тому ми вирішили запровадити повнотекстовий пошук на основі Elasticsearch. Про це і буде даний пост.

Читати далі →

Автоматизоване тестування плагінів Redmine

За минулий рік ми розробили чотири плагіна для зв'язки Redmine + Telegram раз, два, три чотири).
Потихеньку виробляються свої Best Practices щодо них. У цій замітці ми розповімо про тестування та інтеграції з Travis CI.

Чому вирішили розповісти про тестування? Тому що тестування плагіна для Redmine — той ще квест.

Читати далі →

Як ми впроваджуємо ITSM. Чотири вади обслуговування


Ми вирішили поділитися досвідом від впровадження цієї непростої методології всередині нашої компанії і плануємо написати ряд статей про те, як впроваджуємо ITSM, які труднощі долаємо, і які рішення у нас є. Сподіваємося, що статті будуть цікаві IT-менеджменту.

Читати далі →

Двофакторна аутентифікація в Redmine

З давніх пір для другого кроку аутентифікації ми використовували одноразові паролі надсилаються через СМС. Такий функціонал з'явився в Redmine 2013, коли ми розробили плагін redmine_sms_auth. Про це ми писали в давньої статті.
Але час не стоїть на місці. Ми активно впроваджуємо Telegram в бізнес-процеси компанії (раз, два, три).
У зв'язку з цим вирішили зробити аутентифікацію через Telegram в Redmine. Заодно з цим переписати старий плагін про СМС і додати підтримку Google Authenticator.

Далі ми розповімо про те як встановити, налаштувати і використовувати цей плагін.
Читати далі →

Через терни до складання

Привіт, дорогі читачі. Я – розробник в компанії «RTL Service», в якій мої обов'язки по розробці продукту перетинаються з обов'язками DevOps. Конкретніше – я створюю і підтримую інфраструктуру складання і первинного тестування наших продуктів ще до їх попадання в відділ тестування.

У даній статті буде розказано про те, який шлях проходить код від пуша у сховище системи контролю версій до формування інсталяційного deb пакети і розміщення в наш репозиторій пакетів.
Читати далі →

Як зберігати складну ієрархію налаштувань в проектах Redmine

Протягом останніх двох місяців працював над плагіном redmine_intouch для компанії Centos-admin.ru.

Після завершення робіт вирішив поділитися деякими нюансами, з якими довелося зіткнутися в процесі розробки.

У цій публікації розповім про шлях, який довелося пройти для того, щоб реалізувати гнучку систему різноманітних налаштувань.

Насамперед хочу обмовитися. Ця стаття про реалізацію логіки зберігання налаштувань проекту в плагіні для Redmine.

Т. к. це плагін, то використовувати сторонні геми, в яких даний функціонал реалізований вкрай небажано, щоб уникнути конфліктів з логікою самого Redmine.

Тому в цій публікації мова йтиме про реалізацію з нуля системи зберігання налаштувань зі складною ієрархією.

image

Як видно з скріншоту, потрібно якось зберігати дані з трьох спойлерів, в кожному з яких по кілька вкладок, а на кожній вкладці маса чекбоксов.

Читати далі →