Подтвердить что ты не робот

Лучшие хаки в IT/бэк-офисе?

У многих людей есть вещи, которые их системы делают для них или для своих команд. Исходные контрольные пост-фиксации являются стандартным примером: иметь автоматическую систему сборки, которая проверяет последние источники, компиляции, тесты и пакеты, это бэк-офисный хак, который, вероятно, использует большинство из нас.

Какие еще интересные вещи вы сделали?

4b9b3361

Ответ 1

У нас был один разработчик в нашей команде, который не был знаком с концепцией конфликта подрывной деятельности. Он решил, что если он просто удалит все эти странные вещи в своем коде и решит, что все в порядке (т.е. Выбивает все остальные изменения в файле....)

Независимо от того, что после 5-го раза это произошло, и в 5-й раз, когда я должен был объяснить, почему этот дефект, который я только что закрыл, перезагрузился, я написал script.

Это изменит для изменений в файле, чтобы увидеть, удалили ли последовательные проверки все предыдущие изменения и что они были выполнены безымянным разработчиком.

Затем он отправит электронное письмо начальнику с описанием того, что произошло, и сколько работы было потеряно во время проверки.

Не было 7-го случая.

Ответ 2

У нас есть светофор, который показывает, успешно ли работает наша ежедневная сборка, неудачные тесты или просто не создаются.

Кроме того, у нас есть световой бар, который загорается на несколько секунд всякий раз, когда мы получаем выгрузку от клиента.

Ответ 3

Мы не укомплектованы 24x7, но у нас есть критические процессы, которые проводятся всю ночь. Мы создали собственную систему оповещений, чтобы уведомить нас о серьезных системных проблемах, неудачных критически важных процессах и т.д. Он использует текст для речи, чтобы создать описательное сообщение, а затем подключается к нашему автоматическому дозвонщику, чтобы вызвать соответствующих людей с помощью сообщение.

Ответ 4

Работая в компании веб-дизайна, я сконфигурировал наш dev-сервер, чтобы мы могли видеть рабочую копию проекта в режиме реального времени под-доменным именем. Итак, если ваше имя было joe, и вы работали над проектом jetfuel, вы отправились бы в joe.jetfuel.test-example.com, и вы могли бы мгновенно увидеть ваши изменения, не совершая.

Это был простой хак, который использовал поддомены в качестве частичной структуры каталогов. Наш путь htdocs выглядел так: htdocs/tag/project. У нас было script (приложение php, к которому вы могли бы получить доступ setup.test-example.com), который создавал бы новое имя тега для вас и проверял любую версию, которую вы хотели, и вызывать развертывание script для этого проекта. Если это сработает, он перешлет вам новый поддомен. Затем вы можете работать над этой новой копией с помощью доли samba.

Это сработало очень хорошо для нас, так как мы всегда развертывались в одной и той же сборке linux, и наши проекты имели простые требования к базе данных.

Наша первоначальная причина для этого заключалась в том, что наши разработчики работали на разных платформах. Помимо исправления этой проблемы платформы, это было потрясающе для просмотра изменений и тестирования. У нас были все виды тегов, начиная от имен людей, версий соединительных линий, тестовых тегов, вплоть до прототипов, таких как jquery-menu-hack.jetfuel.test-example.com

Теперь, когда я оглядываюсь назад, я задаюсь вопросом, насколько проще было бы запускать виртуальные машины.

Ответ 5

У нас был разработчик, работающий над классическим сайтом ASP, который не верил в контроль источника. Код перешел с его машины прямо в производственную коробку. Это приводит к проблемам с потерянными изменениями или невозможности вернуться к стабильной версии. Так как CruiseControl.Net имеет возможность контролировать каталог, я добавил проект, который фактически проверял файлы, когда они были скопированы на производство. Полностью назад от оригинального намерения CC.Net, но мы не потеряли больше кода.

Ответ 6

Поместите в крюк предварительной фиксации, который проверяет комментарий ошибки, относится к открытой ошибке, назначенной пользователю, выполняющему проверку. (SCMBug может это сделать).

Затем, чтобы сделать жизнь ДЕЙСТВИТЕЛЬНО интересной, заклинание проверяет комментарии!! Комментарий коммита и код в коде. (заклинание - мой приятель)

Запустите код с помощью форматирования кода, установленного для стандартного compayn; и отнести его к оригиналу: если это не в официальном формате компании: отклоните фиксацию.

Проведите тест покрытия с помощью сборки unit test.

Отправить все ошибки/ошибки, вызванные командой разработчиков.

Я покинул имя разработчика. Они знают, что они это сделали.

Ответ 7

Не совсем взломать, но несколько необходимых для ИТ-разработчиков:

Если вы используете подрывную деятельность, вы должны использовать CommitMonitor. (http://tools.tortoisesvn.net/CommitMonitor) Он позволяет вам отслеживать репозитории svn для новых коммитов, а затем просматривать новые коммиты. Отлично, если вы хотите остаться на вершине своей команды. Особенно, если у вас есть пара юниоров, за которыми нужно следить.;)

Rsnapshot (http://www.rsnapshot.org/) также бесценен - ​​у нас есть полные резервные снимки всей нашей файловой системы каждые четыре часа, возвращающиеся на 2 года, и каждый день за этим. Это похоже на куб данных для вашей файловой системы! Это душевное спокойствие, это чистое блаженство.:)

Ответ 8

Вряд ли взломать, но в тот же день, на нашем быстром VAX 11/730, наш ночной процесс напечатает файл "BLAMMO.TXT" на принтере, если что-то пойдет не так. Каждое утро первой остановкой был принтер при входе.

Ответ 9

Назад в днях dotCom около 9 лет назад, мне пришлось взломать систему аварийного переключения между двумя разными местоположениями. У нас была фанковая настройка с веб-сайтом powerbuilder front end и инструментом управления powerbuilder. Данные хранились в MSSQL 7.0. Веб-серверы использовали IPX для связи с серверами SQL (не спрашивайте). Во всяком случае, я был ответственен за принятие плана перехода на другой ресурс.

Я закончил взломать некоторые Linux-боксы и заставил их запустить наш внешний DNS. Один в каждом месте. У нас был удаленный сайт с веб-сервером, а на сервере sql я получил репликацию SQL-транзакций, работающую через IP-соединение 128 тыс. ISDN (из всех вещей). Затем на нашем производственном сайте был создан инструмент мониторинга для отправки пакетов в различные потоки передачи по сети вверх. Если мы столкнулись с более чем 20-процентным отключением основного сайта, инструмент мониторинга запустил perl script в поле Debian, чтобы изменить DNS и указать на наш второй. У нашей вторичной группы было сердцебиение с нашим основным DNS и станцией мониторинга. Он будет дублировать записи, если он не потерял оба соединения, а затем перевернулся, указывая DNS на место резервного копирования.

Основной сайт отключит SQL-сервер в первичной папке, чтобы разбить репликацию. Автоматический переход на другой ресурс с использованием 128k ISDN IPX-соединения:)

Ответ 10

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

Временное решение, которое стало полупостоянным, состояло в том, чтобы хранить каждый не выбранный запрос. Однако это была большая система, что таблица будет расти примерно на 1,5 ГБ в день.

Решение, с которым я столкнулся, заключалось в создании script, который для всех таблиц во внешнем списке создавал соответствующие триггеры, которые проверяли каждую таблицу, строку, столбец, до и после, когда и кем и хранят ее в нашу новую таблицу аудита. Эта таблица выросла примерно на 10% по сравнению с более старой версией и хранила гораздо более удобные для использования данные. Это позволило нам создать пользовательский интерфейс для поиска и просмотра каждого изменения, внесенного в наши данные, без каких-либо знаний SQL для нашей группы поддержки или для бизнес-пользователей.

Ответ 11

Это на более низком уровне, но я довольно горжусь файлом make, который я написал для компиляции кода для моих исследований. Ему нужно только указать имена источников и заголовочных файлов, которые могут позаботиться обо всем остальном сами по себе (хотя это делает одно предположение, что вы не будете компилировать любые файлы заголовков в объекты, только исходные файлы скомпилируются). Другими недостатками являются тот факт, что он полагается на вторую функцию расширения программы GNU make, поэтому я не знаю, работает ли она на других программах make. Кроме того, используемый компилятор должен поддерживать нечто подобное функции gcc -MM. Здесь надеется, что никто не смеется над этим.

-include prereqs.mk
HEADERS=$(SRC_DIR)/gs_lib.h $(SRC_DIR)/gs_structs.h
SOURCES=$(SRC_DIR)/main.cpp $(SRC_DIR)/gs_lib.cpp
OBJECTS=$(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SOURCES))

release: FLAGS=$(GEN_FLAGS)$(OPT_FLAGS)
release: $(OBJECTS) prereqs.mk
    $(CXX) $(FLAGS) $(LINKER_FLAGS) $(OUTPUT_FLAG) $(EXECUTABLE) $(OBJECTS)

prereqs.mk: $(SOURCES) $(HEADERS)
    $(CXX) $(DIR_FLAGS) $(MAKE_FLAG) $(SOURCES) | sed 's,\([abcdefghijklmnopqrstuvwxyz_]*\).o:,\1= \\\n,' > [email protected]

.SECONDEXPANSION:
$(OBJECTS): $$($$(patsubst $(OBJ_DIR)/%.o,%,[email protected]))
    $(CXX) $(FLAGS) $(NO_LINK_FLAG) $(OUTPUT_FLAG) [email protected] $(patsubst $(OBJ_DIR)/%.o,$(SRC_DIR)/%.cpp,[email protected])

Очевидно, я отказался от определения числа переменных, но я думаю, что это переводит идею.

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

Ответ 12

У нас есть учетные записи Twitter для многих проектов, которые чирикают такие вещи, как фиксация сообщений, уведомления из сборок, неудачные модульные тесты, развертывания, активность отслеживания ошибок - любое событие, связанное с проектом. Запуск клиента, такого как Twitter Gwibber (который отображает всплывающее окно для каждого нового статуса), - отличный способ поддерживать связь с деятельностью по интересующим вас проектам. Использование Twitter - это хорошо, так как вы можете воспользоваться всеми сторонними приложениями, такими как клиенты iPhone.

Ответ 13

Добавить проверку фиксации крюка для файлов VRML/3d-модели с абсолютным путем к текстурам/изображениям. f:/maya/my-textures/newproject/xxxx.png просто не принадлежит на сервере.

Ответ 14

В 1993 году, когда системы управления источниками были действительно дорогими и громоздкими, компания, с которой я работал, имела встроенный источник управления, созданный как сценарии 4DOS. Это было не так сложно, как большинство современных систем управления версиями, например, у него не было разветвлений или интеграции, но он выполнял основную работу по поддержке истории изменений, checkout/checkin и рудиментарного разрешения конфликтов.